有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java RecyclerView findFirstVisibleItemPosition()返回1

我有一个与GridLayoutManager合作的RecyclerView

GridLayoutManager layoutManager = new GridLayoutManager(this, 2);

每次设备的方向改变时,我都会改变列:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
    
    
        float scalefactor = getResources().getDisplayMetrics().density * 160;
    
        int number = getWindowManager().getDefaultDisplay().getWidth();
    
        int columns = (int) ((float) number / (float) scalefactor);
        
        recycler1.setLayoutManager(new GridLayoutManager(this, columns));


    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
        
        float scalefactor = getResources().getDisplayMetrics().density * 160;
    
        int number = getWindowManager().getDefaultDisplay().getWidth();
        
        int columns = (int) ((float) number / (float) scalefactor);
        
        recycler1.setLayoutManager(new GridLayoutManager(this, columns));
    
    }
    
}

我在onScroll中使用这个方法进行无休止的滚动

if (layoutManager.findFirstVisibleItemPosition() == (newList.size() - 15)) {
    loadMore();
}

但它会返回“-1”,而不是右边第一个可见项。我尝试了很多方法来解决这个问题,但都没有成功

摘要:我想要一个带有GridLayoutManager的RecyclerView,它的列可以根据屏幕大小进行调整。此外,findFirstVisibleItemPosition()也应该可用


共 (0) 个答案